package com.banksoft.cps.util;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * @version 1.0
 */
public class StringUtil {
    public static boolean isNullOrEmpty(String str) {
        return str == null || str.trim().isEmpty();
    }

    public static String nullOrEmptyToZero(String str) {
        if(StringUtil.isNullOrEmpty(str)) {
            return "0";
        }
        return str;
    }

    public static String setDefaultValueIfNullOrEmpty(String str, String defaultValue) {
        return isNullOrEmpty(str) ? defaultValue : str;
    }

    public static String createBusinessNo() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        Date date = new Date();
        String no = sdf.format(date);
        Random rm = new Random();
        // ��������
        double pross = (1 + rm.nextDouble()) * Math.pow(10, 4);
        // ����õĻ�������ת��Ϊ�ַ���
        String fixLenthString = String.valueOf(pross);
        // ���ع̶��ĳ��ȵ������
        return no + fixLenthString.substring(1, 4 + 1);
    }

    //����������ֺ���ĸ,
    public static String getNumRandomCode(int length) {
        String val = "";
        Random random = new Random();
        //����length����ʾ���ɼ�λ�����
        for (int i = 0; i < length; i++) {
            val += String.valueOf(random.nextInt(10));
        }
        return val;
    }

    /**
     * �磺dapeng ->d****g
     * @param str
     * @param startCount
     * @param endCount
     * @return
     */
    public static String replaceStar(String str, int startCount, int endCount) {
        try {
            if (isNullOrEmpty(str)) return str;
            String begin = str.substring(0, startCount);
            String end = str.substring(str.length() - endCount);
            int len = str.length() - startCount - endCount;
            String center = "";
            for (int i = 0; i < len; i++) {
                center += "*";
            }
            return begin + center + end;
        } catch (Exception ex) {
            return str;
        }
    }

    public static String replaceStar(String str,int beginEndCount,String star){
        try {
            if (isNullOrEmpty(str)) return str;
            String begin = str.substring(0, beginEndCount);
            String end = str.substring(str.length() - beginEndCount);
            return begin + star + end;
        } catch (Exception ex) {
            return str;
        }
    }
    //����������ֺ���ĸ,
    public static String getRandomCode(int length) {
        String val = "";
        Random random = new Random();
        //����length����ʾ���ɼ�λ�����
        for (int i = 0; i < length; i++) {
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            //�����ĸ��������
            if ("char".equalsIgnoreCase(charOrNum)) {
                //����Ǵ�д��ĸ����Сд��ĸ
                int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
                val += (char) (random.nextInt(26) + temp);
            } else if ("num".equalsIgnoreCase(charOrNum)) {
                val += String.valueOf(random.nextInt(10));
            }
        }
        return val;
    }




    public static String comvertMobile(String mobile) {
        if(StringUtil.isNullOrEmpty(mobile))
            return "";
        if(mobile.length() > 3)
       return mobile.substring(0,3) + "****" + mobile.substring(mobile.length()-3);
        return mobile;
    }
}
